package com.terran4j.kotlin.basic


// 基本类型
// 与 java 不一样的是，它没有基本类型和封装类型的区别
fun aboutBasicType() {
    // 第一类，表达一个布尔值，也就是 true 或 false。
    var a: Boolean = true

    // 第二类，表达一个整数
    var b: Byte = 1 // 1字节
    var s: Short = 3 // 2字节
    var i = 2 // 4 字节
    var l: Long = 3 // 8字节

    // 第二类，表达一个实数
    var f = 3.0F // 4 字节
    var d = 4.0 // 8 字节
}


fun convertType() {
    var m = 20;
    var n: Byte = m.toByte();
    var s = m.toShort();
    println("m = $m, n = $n, s= $s")
}

// Char 不能直接当数字用，需要显示转换
fun aboutChar() {
    var a = 'a'
    
    // if (c == 97) { // 编译错误。
    if (a.toInt() == 97) {
        println("a is 97")
    }
    var b:Char = a + 1
    // b = a +1L   // 编译错误，不能用 Long 类型数值相加
}

// 还有一个Any类型，类似于Java 中 Object 类型
fun aboutAny() {
    var obj = Any();
    println(obj::class.java)
    obj = true
    println(obj::class.java)
    obj = 123
    println(obj::class.java)
    obj = 1.23
    println(obj::class.java)
    obj = "abc"
    println(obj::class.java)
}